/* 
 * File:   ItemCarteira.cpp
 * Author: thiagojesus
 * 
 * Created on May 23, 2012, 8:41 AM
 */

#include "ItemCarteira.h"
#include "Lista.cpp"
#include <fstream>
#include <iostream>

ItemCarteira::ItemCarteira() {
    vac = new Vacina();
}

ItemCarteira::ItemCarteira(const ItemCarteira& orig) {
    
}

ItemCarteira::~ItemCarteira() {
    
}


ItemCarteira::ItemCarteira(int d, int m, int a, Vacina* v){
    dataAplicacao.SetDia(d);
    dataAplicacao.SetMes(m);
    dataAplicacao.SetAno(a);
    vac = v;
}

void ItemCarteira::salvarlistacart(int n, listaItemCar *ic){
    std::fstream myfile;
    ItemCarteira *aux = *ic;
    int i;
    myfile.open("itemcarteira.txt",std::ios::out|std::ios::app);
    if(!myfile){
        std::cout<<"ERRO!";
    }else{
        for(i=0;i<n;i++){
            myfile<<aux->dataAplicacao.GetDia()<<"\n"<<aux->dataAplicacao.GetMes()<<"\n"<<aux->dataAplicacao.GetAno()<<"\n"<<aux->vac->getDescricao()<<"\n"<<aux->vac->getPreco()<<"\n";
            aux = aux->prox;
        }
        myfile.close();
        
        std::cout<<"arquivo criado com sucesso\n";
        myfile.close();
        
    }
}

long ItemCarteira::carregarListacart(listaItemCar* ic, long parou, int nc){
    std::fstream myfile;
    int ncarteira, i=0, dia, mes, ano;
    std::string nomevac;
    double preco;
    long esta=0;
    myfile.open("itemcarteira.txt",std::ios::in);
    if(!myfile){
        std::cout<<"ERRO!";
    }else{
        myfile.seekg(parou);
        for(i =0; i<nc;i++){
            ItemCarteira *aux = new ItemCarteira();
            myfile>>dia>>mes>>ano>>nomevac>>preco;
            aux->dataAplicacao.SetDia(dia);
            aux->dataAplicacao.SetMes(mes);
            aux->dataAplicacao.SetAno(ano);
            aux->vac->setDescricao(nomevac);
            aux->vac->setPreco(preco);
            cadastrar(ic,aux);
            }
        //std::cout<<"dados carregados\n";   
            
        esta = myfile.tellg();
        myfile.close();
        return esta;
}
}

void ItemCarteira::imprimirListaCart(listaItemCar* v){
    ItemCarteira *aux;
    aux = *v;
    std::cout<<"Carteira de Vacinas:\n";
    while(aux!=NULL){
        std::cout<<"Data Aplicacao: "<<aux->dataAplicacao.GetDia()<<"/"<<aux->dataAplicacao.GetMes()<<"/"<<aux->dataAplicacao.GetAno()<<"\n";
        std::cout<<"Nome Vacina: "<<aux->vac->getDescricao()<<"\n";
        aux = aux->prox;
    }
    
}

